//
//  Emoticon.swift
//  EmoticonKeyboard
//
//  Created by liii on 16/8/14.
//  Copyright © 2016年 liii. All rights reserved.
//

import UIKit

class Emoticon: NSObject {

    var id: String?     // 表情存放路径
    var chs: String?    // 表情对应文字
    
    var imgPath: String?    // 处理过后的图片路径
    var png: String? {      // 表情对应图片名
        didSet {
            if let img = png {
                imgPath = NSBundle.mainBundle().bundlePath + "/Emoticons.bundle/" + (id ?? "") + "/" + (img ?? "")
            }
        }
    }
    
    var codeString: String? // 转换后的字符串
    var code: String? {     // Emoji表情的16进制编码
        didSet {
            if let c = code {
                // 将16进制编码, 转成表情字符串
                codeString = c.emojiString()
            }
        }
    }
    
    // 删除按钮的标志位, 初始化一个删除按钮
    var isDelete: Bool = false
    init(isDelete: Bool) {
        super.init()
        self.isDelete = isDelete
    }
    
    // 空白按钮标志位, 初始化一个空白按钮
    var isEmpty: Bool = false
    init(isEmpty: Bool) {
        super.init()
        self.isEmpty = isEmpty
    }
    
    init(id: String, dict: [String : String]) {
        super.init()
        
        self.id = id
        // 字典转模型
        self.setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        return
    }
    
    // 重写描述方法
    override var description: String {
        let keys = ["chs", "png", "code", "id"]
        let dict = self.dictionaryWithValuesForKeys(keys)
        return dict.description
    }
    
}
